package com.divemotor.ventarepuestosinternet.service.impl;

import java.io.Serializable;
import java.util.List;

import org.primefaces.model.SortOrder;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;

import com.divemotor.ventarepuestosinternet.dao.ModeloFabricaDAO;
import com.divemotor.ventarepuestosinternet.exception.DivemotorBusinessException;
import com.divemotor.ventarepuestosinternet.model.Marca;
import com.divemotor.ventarepuestosinternet.model.ModeloFabrica;
import com.divemotor.ventarepuestosinternet.model.TipoComponente;
import com.divemotor.ventarepuestosinternet.service.ModeloFabricaService;

@Service(value = "modeloFabricaService")
@Transactional(rollbackFor=Exception.class)
public class ModeloFabricaServiceImpl implements ModeloFabricaService, Serializable {

	private static final long serialVersionUID = 7215978647075296302L;
	
	@Autowired
	private ModeloFabricaDAO modeloFabricaDAO;
	
	@Override
	public ModeloFabrica obtenerPorId(ModeloFabrica modeloFabrica) throws DivemotorBusinessException {
		return modeloFabricaDAO.obtenerPorId(modeloFabrica);
	}

	@Override
	public List<ModeloFabrica> listarPorTipoComponente(TipoComponente tipoComponente) throws DivemotorBusinessException {
		return modeloFabricaDAO.listarPorTipoComponente(tipoComponente);
	}

	@Override
	public List<ModeloFabrica> listarActivosPorTipoComponente(TipoComponente tipoComponente) throws DivemotorBusinessException {
		return modeloFabricaDAO.listarActivosPorTipoComponente(tipoComponente);
	}

	@Override
	public List<ModeloFabrica> listarActivosPorMarcaYTipoComponente(Marca marca, TipoComponente tipoComponente) throws DivemotorBusinessException {
		return modeloFabricaDAO.listarActivosPorMarcaYTipoComponente(marca, tipoComponente);
	}
	@Override
	public List<ModeloFabrica> buscarModeloFabricaPorDescripcionMarcaYTipoComponente(int first, int pageSize, SortOrder sortOrder,String sortedField,ModeloFabrica modeloFabrica) throws DivemotorBusinessException {
		return modeloFabricaDAO.buscar(first,pageSize,sortOrder,sortedField, modeloFabrica);
	}
	
	@Override
	public Integer cantidadBuscarModeloFabricaPorDescripcionMarcaYTipoComponente(ModeloFabrica modeloFabrica) throws DivemotorBusinessException {
		return modeloFabricaDAO.cantidadBuscar(modeloFabrica);
	}

}
